/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package org.base;

import java.io.Serializable;
import java.util.Collection;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlTransient;

/**
 *
 * @author mmanto
 */
@Entity
@Table(name = "nomenclatura_catastral")
@XmlRootElement
@NamedQueries({
    @NamedQuery(name = "NomenclaturaCatastral.findAll", query = "SELECT n FROM NomenclaturaCatastral n"),
    @NamedQuery(name = "NomenclaturaCatastral.findById", query = "SELECT n FROM NomenclaturaCatastral n WHERE n.id = :id"),
    @NamedQuery(name = "NomenclaturaCatastral.findByVersion", query = "SELECT n FROM NomenclaturaCatastral n WHERE n.version = :version"),
    @NamedQuery(name = "NomenclaturaCatastral.findByCircunscripcion", query = "SELECT n FROM NomenclaturaCatastral n WHERE n.circunscripcion = :circunscripcion"),
    @NamedQuery(name = "NomenclaturaCatastral.findByLetraChacra", query = "SELECT n FROM NomenclaturaCatastral n WHERE n.letraChacra = :letraChacra"),
    @NamedQuery(name = "NomenclaturaCatastral.findByLetraFraccion", query = "SELECT n FROM NomenclaturaCatastral n WHERE n.letraFraccion = :letraFraccion"),
    @NamedQuery(name = "NomenclaturaCatastral.findByLetraManzana", query = "SELECT n FROM NomenclaturaCatastral n WHERE n.letraManzana = :letraManzana"),
    @NamedQuery(name = "NomenclaturaCatastral.findByLetraParcela", query = "SELECT n FROM NomenclaturaCatastral n WHERE n.letraParcela = :letraParcela"),
    @NamedQuery(name = "NomenclaturaCatastral.findByLetraQuinta", query = "SELECT n FROM NomenclaturaCatastral n WHERE n.letraQuinta = :letraQuinta"),
    @NamedQuery(name = "NomenclaturaCatastral.findByNumeroChacra", query = "SELECT n FROM NomenclaturaCatastral n WHERE n.numeroChacra = :numeroChacra"),
    @NamedQuery(name = "NomenclaturaCatastral.findByNumeroFraccion", query = "SELECT n FROM NomenclaturaCatastral n WHERE n.numeroFraccion = :numeroFraccion"),
    @NamedQuery(name = "NomenclaturaCatastral.findByNumeroManzana", query = "SELECT n FROM NomenclaturaCatastral n WHERE n.numeroManzana = :numeroManzana"),
    @NamedQuery(name = "NomenclaturaCatastral.findByNumeroParcela", query = "SELECT n FROM NomenclaturaCatastral n WHERE n.numeroParcela = :numeroParcela"),
    @NamedQuery(name = "NomenclaturaCatastral.findByNumeroQuinta", query = "SELECT n FROM NomenclaturaCatastral n WHERE n.numeroQuinta = :numeroQuinta"),
    @NamedQuery(name = "NomenclaturaCatastral.findBySpartido", query = "SELECT n FROM NomenclaturaCatastral n WHERE n.spartido = :spartido"),
    @NamedQuery(name = "NomenclaturaCatastral.findBySeccion", query = "SELECT n FROM NomenclaturaCatastral n WHERE n.seccion = :seccion")})
public class NomenclaturaCatastral implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @Basic(optional = false)
    @NotNull
    @Column(name = "id")
    private Long id;
    @Basic(optional = false)
    @NotNull
    @Column(name = "version")
    private long version;
    @Size(max = 255)
    @Column(name = "circunscripcion")
    private String circunscripcion;
    @Size(max = 255)
    @Column(name = "letra_chacra")
    private String letraChacra;
    @Size(max = 255)
    @Column(name = "letra_fraccion")
    private String letraFraccion;
    @Size(max = 255)
    @Column(name = "letra_manzana")
    private String letraManzana;
    @Size(max = 255)
    @Column(name = "letra_parcela")
    private String letraParcela;
    @Size(max = 255)
    @Column(name = "letra_quinta")
    private String letraQuinta;
    @Size(max = 255)
    @Column(name = "numero_chacra")
    private String numeroChacra;
    @Size(max = 255)
    @Column(name = "numero_fraccion")
    private String numeroFraccion;
    @Size(max = 255)
    @Column(name = "numero_manzana")
    private String numeroManzana;
    @Size(max = 255)
    @Column(name = "numero_parcela")
    private String numeroParcela;
    @Size(max = 255)
    @Column(name = "numero_quinta")
    private String numeroQuinta;
    @Size(max = 255)
    @Column(name = "spartido")
    private String spartido;
    @Size(max = 255)
    @Column(name = "seccion")
    private String seccion;
    @OneToMany(mappedBy = "nomenclaturaOrigenId")
    private Collection<Barrio> barrioCollection;
    @JoinColumn(name = "estado_nomenclatura_id", referencedColumnName = "id")
    @ManyToOne
    private EstadoNomenclatura estadoNomenclaturaId;

    public NomenclaturaCatastral() {
    }

    public NomenclaturaCatastral(Long id) {
        this.id = id;
    }

    public NomenclaturaCatastral(Long id, long version) {
        this.id = id;
        this.version = version;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public long getVersion() {
        return version;
    }

    public void setVersion(long version) {
        this.version = version;
    }

    public String getCircunscripcion() {
        return circunscripcion;
    }

    public void setCircunscripcion(String circunscripcion) {
        this.circunscripcion = circunscripcion;
    }

    public String getLetraChacra() {
        return letraChacra;
    }

    public void setLetraChacra(String letraChacra) {
        this.letraChacra = letraChacra;
    }

    public String getLetraFraccion() {
        return letraFraccion;
    }

    public void setLetraFraccion(String letraFraccion) {
        this.letraFraccion = letraFraccion;
    }

    public String getLetraManzana() {
        return letraManzana;
    }

    public void setLetraManzana(String letraManzana) {
        this.letraManzana = letraManzana;
    }

    public String getLetraParcela() {
        return letraParcela;
    }

    public void setLetraParcela(String letraParcela) {
        this.letraParcela = letraParcela;
    }

    public String getLetraQuinta() {
        return letraQuinta;
    }

    public void setLetraQuinta(String letraQuinta) {
        this.letraQuinta = letraQuinta;
    }

    public String getNumeroChacra() {
        return numeroChacra;
    }

    public void setNumeroChacra(String numeroChacra) {
        this.numeroChacra = numeroChacra;
    }

    public String getNumeroFraccion() {
        return numeroFraccion;
    }

    public void setNumeroFraccion(String numeroFraccion) {
        this.numeroFraccion = numeroFraccion;
    }

    public String getNumeroManzana() {
        return numeroManzana;
    }

    public void setNumeroManzana(String numeroManzana) {
        this.numeroManzana = numeroManzana;
    }

    public String getNumeroParcela() {
        return numeroParcela;
    }

    public void setNumeroParcela(String numeroParcela) {
        this.numeroParcela = numeroParcela;
    }

    public String getNumeroQuinta() {
        return numeroQuinta;
    }

    public void setNumeroQuinta(String numeroQuinta) {
        this.numeroQuinta = numeroQuinta;
    }

    public String getSpartido() {
        return spartido;
    }

    public void setSpartido(String spartido) {
        this.spartido = spartido;
    }

    public String getSeccion() {
        return seccion;
    }

    public void setSeccion(String seccion) {
        this.seccion = seccion;
    }

    @XmlTransient
    public Collection<Barrio> getBarrioCollection() {
        return barrioCollection;
    }

    public void setBarrioCollection(Collection<Barrio> barrioCollection) {
        this.barrioCollection = barrioCollection;
    }

    public EstadoNomenclatura getEstadoNomenclaturaId() {
        return estadoNomenclaturaId;
    }

    public void setEstadoNomenclaturaId(EstadoNomenclatura estadoNomenclaturaId) {
        this.estadoNomenclaturaId = estadoNomenclaturaId;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (id != null ? id.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof NomenclaturaCatastral)) {
            return false;
        }
        NomenclaturaCatastral other = (NomenclaturaCatastral) object;
        if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "org.base.NomenclaturaCatastral[ id=" + id + " ]";
    }
    
}
